package com.company.basic;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

public class GrayCode {
    public List<Integer> grayCode(int n) {
        List<Integer> result=new ArrayList<>();
        int v = 0;

        StringBuilder pattern=new StringBuilder();
        for (int i = 0; i < n; i++) {
            pattern.append("0");
        }
        DecimalFormat decimalFormat = new DecimalFormat(pattern.toString());

        String vStr = decimalFormat.format(v);
        System.out.println(vStr);

        //选一个入口 每个入口都有两种路径 向左或者向右 并一直到边界
        /*也就是  如果入口选择了   index = 1 的位置   并且是向左  则下一个数值只能是  11000000 由于已经到达左边边界 跳出
        * 如果选择了index = 1 并且向右  则数值 为  01100000 -> 01110000 -> ... -> 01111111 到达边界*/
        for (int i = 0; i < n; i++) {

        }

        return result;
    }
    public static void printList(List<Integer> list){
        StringBuilder stringBuilder=new StringBuilder();
        stringBuilder.append("[");
        DecimalFormat decimalFormat=new DecimalFormat("00000000");
        for (Integer integer : list) {

            stringBuilder.append(decimalFormat.format(Integer.parseInt(Integer.toBinaryString(integer))));
            stringBuilder.append(", ");
        }
        stringBuilder.append("]");
        System.out.println(stringBuilder.toString());
    }
}
